package com.vic.queue_param.arguments.x_max_length_bytes;

import com.rabbitmq.client.Channel;
import com.vic.utils.RabbitmqUtils;

import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

/**
 * 发送者
 */
public class Test_mlb_producer {

    public static void main(String[] args) throws Exception {
        Channel channel = RabbitmqUtils.getChannel();

        String queueName = "queue_x_max_length_bytes";

        // 声明队列
        Map<String, Object> arguments = new HashMap<>();
        // 队列最大只能容纳12个字节，即所有消息加一起的最大字节总数
        arguments.put("x-max-length-bytes", 12);
        channel.queueDeclare(queueName, false, false, false , arguments);

        /**
         * 第1种情况
         * 发送一条 15个字节的消息："新年快乐啊"（我们采用UTF8编码，1个汉字占3个字节），发送完毕后，创建一个消费者去消费。(当然，消费者也要用UTF8来接收）
         */
//        String msg = "新年快乐呀";
        // 发送消息
//        channel.basicPublish("", queueName, null, msg.getBytes(StandardCharsets.UTF_8));

        /**
         * 第2种情况
         * 连续发送2条累计15个字节的消息
         */
        channel.basicPublish("", queueName, null, "新年快乐哈哈哈哈".getBytes(StandardCharsets.UTF_8));
        channel.basicPublish("", queueName, null, "呀".getBytes(StandardCharsets.UTF_8));

        System.out.println("消息发送完毕");
    }

}
